package com.ruoyi.fztz.lstb.xmls.mapper;

import java.util.List;
import com.ruoyi.fztz.lstb.xmls.domain.LstbXmls;
import com.ruoyi.fztz.lstb.xmls.domain.LstbXmlsFj;
import com.ruoyi.fztz.lstb.xmls.vo.YbFyVo;

/**
 * 项目流水Mapper接口
 *
 * @author huacai
 * @date 2024-11-19
 */
public interface LstbXmlsMapper
{
    /**
     * 查询项目流水
     *
     * @param xmlsId 项目流水主键
     * @return 项目流水
     */
    public LstbXmls selectLstbXmlsByXmlsId(String xmlsId);

    /**
     * 查询项目流水列表
     *
     * @param lstbXmls 项目流水
     * @return 项目流水集合
     */
    public List<LstbXmls> selectLstbXmlsList(LstbXmls lstbXmls);

    /**
     * 新增项目流水
     *
     * @param lstbXmls 项目流水
     * @return 结果
     */
    public int insertLstbXmls(LstbXmls lstbXmls);

    /**
     * 修改项目流水
     *
     * @param lstbXmls 项目流水
     * @return 结果
     */
    public int updateLstbXmls(LstbXmls lstbXmls);

    /**
     * 删除项目流水
     *
     * @param xmlsId 项目流水主键
     * @return 结果
     */
    public int deleteLstbXmlsByXmlsId(String xmlsId);

    /**
     * 批量删除项目流水
     *
     * @param xmlsIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLstbXmlsByXmlsIds(String[] xmlsIds);

    /**
     * 批量删除项目流水附件
     *
     * @param xmlsIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLstbXmlsFjByXmlsIds(String[] xmlsIds);

    /**
     * 批量新增项目流水附件
     *
     * @param lstbXmlsFjList 项目流水附件列表
     * @return 结果
     */
    public int batchLstbXmlsFj(List<LstbXmlsFj> lstbXmlsFjList);


    /**
     * 通过项目流水主键删除项目流水附件信息
     *
     * @param xmlsId 项目流水ID
     * @return 结果
     */
    public int deleteLstbXmlsFjByXmlsId(String xmlsId);

    /**
     * 新增附件
     * @param lstbXmlsFj
     * @return
     */
    int insertXmlsFjByXmlsId(LstbXmlsFj lstbXmlsFj);

    /**
     * 根据ID查询附件列表
     * @param lstbXmlsFj
     * @return
     */
    List<LstbXmlsFj> selectXmlsFjList(LstbXmlsFj lstbXmlsFj);

    /**
     * 删除项目流水附件
     * @param fjIds
     * @return
     */
    int deleteLstbXmlsFjByFjIds(Integer[] fjIds);

    /**
     * 获取费用月报
     * @param ybFyVo
     * @return
     */
    List<YbFyVo> selectYbFyList(YbFyVo ybFyVo);
}
